#ifndef ALGORITHM_H
#define	ALGORITHM_H
#include "Graph.h"

/* Returns the number of color needed for coulouring g */
extern int greedy_algorithm(Graph * g);

/* Returns numbers max of colored nodes */
extern int backtracking_algorithm(Graph * g, int k);
extern int nochoice_algorithm(Graph * g, int k);
extern int nochoice_algorithm_optimized(Graph * g, int k);

/* Colour a graph with the solution suggested by minisat */
extern void sat_colouring(Graph * g, int k, string sat_result_file_path);

#endif	/* ALGORITHM_H */

